package tool.codescan.visitors;

import tool.data.TypeDefinition;
import japa.parser.ast.CompilationUnit;

	/**
	 * @author jwb09119
	 * @date 2013/11/22
	 * 
	 * This interface is the 'view' of a parent object passed to a visitor to allow the visitor to
	 * 'know where it is' in the tree being parsed.  The primary function is to allow the visitor
	 * to be able to resolve Types, benefitting from the parents higher level knoweldge of the
	 * AST structure.
	 * 
	 */

public interface IVisitorContext {

	/**
	 *Resolves a Type in the context of the container {@link CompilationUnit} 
	 * @param type - the name of the Type to resolve
     * @return - TypeDefinition - object representing the name of the parameter and containing any
     *                            path information which may have been found.
     *                    
	 * NB- the returned string can be treated as unique within the program being analysed.
	 */
	public abstract TypeDefinition getFullTypeAddress(String type);
	
}
